<?php
header("Content-type: text/html; charset=utf-8");
if(!isset($_GET['code']))
{
    $APPID='公众号在微信的appid';
    $REDIRECT_URI='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//一般跳回原页面就可以
    $scope='snsapi_base';
    $url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$APPID.'&redirect_uri='.urlencode($REDIRECT_URI).'&response_type=code&scope='.$scope.'&state=wx'.'#wechat_redirect';
    header("Location:".$url);exit;
}
else
{
    $code = $_GET['code'];//获取code
    $weixin =  file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid=这里是你的APPID&secret=这里是你的SECRET&code=".$code."&grant_type=authorization_code");//通过code换取网页授权access_token
    $jsondecode = json_decode($weixin,true); //对JSON格式的字符串进行编码
    //$array = get_object_vars($jsondecode);//转换成数组
    $zhiyeguwen = $array['openid'];//输出openid

}

$clientName = '测试';
$tel = '18888888888';
$product = '测试';
//推送模板信息给置业顾问
$send = new Oauth();　　//实例化类
$send->sendMessage($zhiyeguwen,$clientName,$tel,$product);　　//调用方法$zhiyeguwen openid


class Oauth {
    //获得全局access_token
    public function get_token()
    {
        //如果已经存在直接返回access_token
        //if($_SESSION['access_token'] && $_SESSION['expire_time']>time()){
        //return $_SESSION['access_token'];
        //}else{
        //1.请求url地址
        $appid = APPID;  //appid
        $appsecret = APPSECRET;　　//appsecret
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; //请求地址
    //2初始化curl请求
    $ch = curl_init();
    //3.配置请求参数
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
    curl_setopt($ch, CURLOPT_URL, $url);　　//请求
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不直接输出数据
    //4.开始请求
    $res = curl_exec($ch); //获取请求结果
    if( curl_errno($ch) ){
        var_dump( curl_error($ch) ); //打印错误信息
    }
    //5.关闭curl
    curl_close( $ch );
    $arr = json_decode($res, true); //将结果转为数组
    //$_SESSION['access_token']=$arr['access_token'];　　//将access_token存入session中，可以不存，每次都获得新的token
    //$_SESSION['expire_time']=time()+7200;
    return $arr['access_token'];
    //}
  }

    //推送模板信息  参数：发送给谁的openid,客户姓名，客户电话，推荐楼盘（参数自定）
    function sendMessage($openid,$customName,$customPhone,$reportBuilding)
    {
        //获取全局token
        $token = $this->get_token();
        $url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$token; //模板信息请求地址
        //发送的模板信息(微信要求json格式，这里为数组（方便添加变量）格式，然后转为json)
        $post_data = array(
            "touser"=>$openid, //推送给谁,openid
            "template_id"=>"nKu4eyktzxOslxq0KfPxhGXbiOo873K9mIxKvs23EVU", //微信后台的模板信息id
            "url"=>"http://www.baidu.com", //下面为预约看房模板示例
            "data"=> array(
                "first" => array(
                    "value"=>"您有新客户，请及时查看！",
                    "color"=>"#173177"
                ),
                "customName"=>array(
                    "value"=>$customName, //传的变量
                    "color"=>"#173177"
                ),
                "customPhone"=>array(
                    "value"=>$customPhone,
                    "color"=>"#173177"
                ),
                "reportBuilding"=> array(
                    "value"=>$reportBuilding,
                    "color"=>"#173177"
                ),
                "reportTime"=> array(
                    "value"=>date('Y-m-d H:i:s'),
                    "color"=>"#173177"
                ),
                "remark"=> array(
                    "value"=>"请及时联系客户哦！",
                    "color"=>"#173177"
                ),
            )
        );
        //将上面的数组数据转为json格式
        $post_data = json_encode($post_data);
        //发送数据，post方式
        　　　　//配置curl请求
    $ch = curl_init();　　//创建curl请求
    curl_setopt($ch, CURLOPT_URL,$url); //设置发送数据的网址
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设置有返回值，0，直接显示
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); //禁用证书验证
    curl_setopt($ch, CURLOPT_POST, 1);　　//post方法请求
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//post请求发送的数据包
    //接收执行返回的数据
    $data = curl_exec($ch);
    //关闭句柄
    curl_close($ch);
    $data = json_decode($data,true); //将json数据转成数组
    return $data;
  }

    //获取模板信息-行业信息（参考，示例未使用）
    function getHangye()
    {
        //用户同意授权后，会传过来一个code
        $token = $this->get_token();
        $url = "https://api.weixin.qq.com/cgi-bin/template/get_industry?access_token=".$token;
        //请求token，get方式
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
        $data = curl_exec($ch);
        curl_close($ch);
        $data = json_decode($data,true); //将json数据转成数组
        //return $data["access_token"];
        return $data;
        　}
}
